home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / c / bitstrg.zip / INVERTBI.C < prev    next >
C/C++ Source or Header  |  1989-06-01  |  479b  |  30 lines

  1. /*
  2.     librairie : bitstrg
  3.  
  4.     invertbit --    inversion de l'etat d'un bit
  5.  
  6. */
  7.  
  8. #include "bitstrg.h"
  9.  
  10. /*
  11.     invert state of specified bit
  12.  
  13.     if bit > map size, 0 is returned, else 1 is returned
  14. */
  15.  
  16. unsigned invertbit(ptr,bit)
  17.     struct SPARRAY * ptr;        /* pointer on structure */
  18.     unsigned    bit;            /* bit number */
  19. {
  20.  
  21.     if(ptr->numlbit < bit) {
  22.         return(0);
  23.     }
  24.  
  25.         /* XOR original with 1 */
  26.  
  27.     (ptr->pntarray)[bit / SIZE] ^= (1 << (bit & (SIZE - 1)));    
  28.     return(1);
  29. }
  30.